#-*- coding:utf8 -*-
import re

def url_link_parser(m):
	url, label = m.group('url', 'label')
	return '<a href="%s">%s</a>' % (url, label)

# p = re.compile(r'\[(?P<url>.*)\s(?P<label>.*)\]')
# 약간의 약점은 있는 것 같음. 맞는 걸까? 
# [a-z/.]{2,6}은 아마도 .net .com or.kr 과 같은 문자를 해결하려고 한 것 같은데 안되는 듯.
# rex url : (https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w_\.-]*)*\/?$
content = '''
지금부터 정규식을 이용한 Replacer를 구현하겠습니다.
다음은 <a> Tag로 변환 됩니다. [http://www.naver.com naver Naver] 
여기로 들어가셔서Replacer로 검색해보세요.

아래 여러 개의 주소 중 문법에 맞는 것만 <a> Tag 로 변환될 수  있습니다.
[http://www.google.co.kr Google]
[https://docs.google.com/ 여기로 접속하시면 구글 문서를 이용하여 여러 사람과 함께 문서를 공유할 수 있습니다.]
[https://
[http://www. 이건 안되야지?]
http:// 이것도]
[http::///www.asdf.asdf 이것 역시]
[http://www.1a.2a.3a.4a.5a.6a 이건 안됨.]
[http://www.1a.2a.abcdef 이건 됨.]
[http://www.1a.2a.abcdefg 이건 마지막.abcdefg 떄문에 안되야 함.]
'''

p = re.compile(r'\[(?P<url>(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w_\.-]*)\/?)\s(?P<label>.*)\]')
print "-" * 10 + "치환문" + "-" * 10
print p.sub(url_link_parser, content)
print "-" * 10 + "원문" + "-" * 10
print content 
